PHP 操作 Cookie 的常见问题

| 选择喜欢的代码风格  

在 PHP 中,setcookie() 函数设置的 Cookie 是通过 HTTP 响应头发送给客户端浏览器的,而 $_COOKIE 数组则是从客户端浏览器发送过来的请求头中提取的。因此,当在一次请求中调用 setcookie() 后立即尝试通过 $_COOKIE 获取该 Cookie 时是无法获取到的(不同于 ASP.NET 等机制)。

 

解决方法:


如果需要在设置 Cookie 后 立即 获取其值,可以手动将该值存储到一个变量中,或者在下一次请求时再通过 $_COOKIE 获取。例如:

setcookie("test", "value", time() + 3600);
$_COOKIE["test"] = "value"; // 手动设置,以便立即使用

 echo $_COOKIE["test"]; // 输出 "value"

或者在下一次请求中再获取:

// 第一次请求
setcookie("test", "value", time() + 3600);

// 第二次请求
if (isset($_COOKIE["test"])) {
    echo $_COOKIE["test"]; // 输出 "value"
}
 

CommandNotFound ⚡️ 坑否 - 其他频道扩展阅读:




发表评论